home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d18 / nrpas13.arc / ECLASS.DEM < prev    next >
Text File  |  1991-05-01  |  1KB  |  51 lines

  1. PROGRAM d8r10(input,output);
  2. (* driver for routine ECLASS *)
  3. CONST
  4.    m=11;
  5.    n=15;
  6. TYPE
  7.    glnarray = ARRAY [1..n] OF integer;
  8.    glmarray = ARRAY [1..m] OF integer;
  9. VAR
  10.    i,j,k,lclas,nclass : integer;
  11.    lista,listb : glmarray;
  12.    nf,nflag,nsav : glnarray;
  13.  
  14. (*$I MODFILE.PAS *)
  15. (*$I ECLASS.PAS *)
  16.  
  17. BEGIN
  18.    lista[1] := 1; lista[2] := 1; lista[3] := 5; lista[4] := 2;
  19.    lista[5] := 6; lista[6] := 2; lista[7] := 7; lista[8] := 11;
  20.    lista[9] := 3; lista[10] := 4; lista[11] := 12;
  21.    listb[1] := 5; listb[2] := 9; listb[3] := 13; listb[4] := 6;
  22.    listb[5] := 10; listb[6] := 14; listb[7] := 3; listb[8] := 7;
  23.    listb[9] := 15; listb[10] := 8; listb[11] := 4;
  24.    eclass(nf,n,lista,listb,m);
  25.    FOR i := 1 to n DO BEGIN
  26.       nflag[i] := 1
  27.    END;
  28.    writeln;
  29.    writeln('Numbers from 1-15 divided according to');
  30.    writeln('their value modulo 4:');
  31.    writeln;
  32.    lclas := 0;
  33.    FOR i := 1 to n DO BEGIN
  34.       nclass := nf[i];
  35.       IF (nflag[nclass] <> 0)  THEN BEGIN
  36.          nflag[nclass] := 0;
  37.          lclas := lclas+1;
  38.          k := 0;
  39.          FOR j := i to n DO BEGIN
  40.             IF  (nf[j] = nf[i])  THEN BEGIN
  41.                k := k+1;
  42.                nsav[k] := j
  43.             END
  44.          END;
  45.          write('Class',lclas:2,':   ');
  46.          FOR j := 1 to k DO write(nsav[j]:3);
  47.          writeln
  48.       END
  49.    END
  50. END.
  51.